<html>
<head><meta charset="utf-8"><title>unified dataflow design meeting prep (Nov. 8) · t-compiler · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/index.html">t-compiler</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html">unified dataflow design meeting prep (Nov. 8)</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="179955107"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/179955107" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#179955107">(Nov 05 2019 at 17:29)</a>:</h4>
<p>The design meeting this friday will be about ways to unify the two separate dataflow frameworks currently in rustc, as well as improvements we can make down the line. I've written up a meeting agenda in a dropbox doc. If you have anything you want to discuss, please add it there!</p>



<a name="179955116"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/179955116" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#179955116">(Nov 05 2019 at 17:29)</a>:</h4>
<p><a href="https://paper.dropbox.com/doc/Unified-Dataflow-Framework-Meeting-Agenda--AoAd7o0xFEKSkj4UK7CcvoAUAQ-6pHEscQ9H696tawihH2nE" target="_blank" title="https://paper.dropbox.com/doc/Unified-Dataflow-Framework-Meeting-Agenda--AoAd7o0xFEKSkj4UK7CcvoAUAQ-6pHEscQ9H696tawihH2nE">https://paper.dropbox.com/doc/Unified-Dataflow-Framework-Meeting-Agenda--AoAd7o0xFEKSkj4UK7CcvoAUAQ-6pHEscQ9H696tawihH2nE</a></p>



<a name="179955217"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/179955217" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#179955217">(Nov 05 2019 at 17:30)</a>:</h4>
<p>cc <span class="user-group-mention" data-user-group-id="897">@T-compiler/meeting</span></p>



<a name="179963122"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/179963122" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#179963122">(Nov 05 2019 at 18:47)</a>:</h4>
<p>Oh, here's a link to the design doc. Skimming the code sections will help you get a feel for things if you don't want to read it all: <br>
<a href="https://hackmd.io/@39Qr_z9cQhasi25sGjmFnA/Skvd9rztS" target="_blank" title="https://hackmd.io/@39Qr_z9cQhasi25sGjmFnA/Skvd9rztS">https://hackmd.io/@39Qr_z9cQhasi25sGjmFnA/Skvd9rztS</a></p>



<a name="180176191"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/180176191" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#180176191">(Nov 07 2019 at 21:08)</a>:</h4>
<p>BTW, I mention both @nagisa's and @eddyb's work as prior art in the meeting agenda. If either of you are available for the meeting, it would be valuable to get your input. The MVP I discuss is much less ambitious than what either of you were working on, and I've not explored the issues that arise when, e.g., trying to support arbitrary lattices.</p>



<a name="180211206"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/180211206" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Oliver Braunsdorf <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#180211206">(Nov 08 2019 at 08:33)</a>:</h4>
<p>Is the meeting open to everyone? If so, could you please tell me how I could join (or listen) to the meeting?</p>



<a name="180218833"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/180218833" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#180218833">(Nov 08 2019 at 10:45)</a>:</h4>
<p><span class="user-mention" data-user-id="245622">@Oliver Braunsdorf</span> the meeting will be here on Zulip</p>



<a name="180218879"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/180218879" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#180218879">(Nov 08 2019 at 10:46)</a>:</h4>
<p>so it's open to everyone <code>:)</code></p>



<a name="180218933"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/180218933" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> mw <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#180218933">(Nov 08 2019 at 10:47)</a>:</h4>
<p><a href="https://calendar.google.com/event?action=TEMPLATE&amp;tmeid=NWVxanM5MnVudW81ZmtrbDE5c2owb2IwY2IgNnU1cnJ0Y2U2bHJ0djA3cGZpM2RhbWdqdXNAZw&amp;tmsrc=6u5rrtce6lrtv07pfi3damgjus%40group.calendar.google.com" target="_blank" title="https://calendar.google.com/event?action=TEMPLATE&amp;tmeid=NWVxanM5MnVudW81ZmtrbDE5c2owb2IwY2IgNnU1cnJ0Y2U2bHJ0djA3cGZpM2RhbWdqdXNAZw&amp;tmsrc=6u5rrtce6lrtv07pfi3damgjus%40group.calendar.google.com">https://calendar.google.com/event?action=TEMPLATE&amp;tmeid=NWVxanM5MnVudW81ZmtrbDE5c2owb2IwY2IgNnU1cnJ0Y2U2bHJ0djA3cGZpM2RhbWdqdXNAZw&amp;tmsrc=6u5rrtce6lrtv07pfi3damgjus%40group.calendar.google.com</a></p>



<a name="180219055"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/180219055" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Oliver Braunsdorf <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#180219055">(Nov 08 2019 at 10:49)</a>:</h4>
<p>Oh okay..I thought it would be some kind of phone or video conference <span aria-label="big smile" class="emoji emoji-1f604" role="img" title="big smile">:big_smile:</span><br>
Thank you!</p>



<a name="180231335"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/180231335" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#180231335">(Nov 08 2019 at 13:56)</a>:</h4>
<blockquote>
<p>BTW, I mention both @nagisa's and @eddyb's work as prior art in the meeting agenda. If either of you are available for the meeting, it would be valuable to get your input. The MVP I discuss is much less ambitious than what either of you were working on, and I've not explored the issues that arise when, e.g., trying to support arbitrary lattices.</p>
</blockquote>
<p><span class="user-mention" data-user-id="123586">@nagisa</span> <span class="user-mention" data-user-id="119009">@eddyb</span></p>



<a name="180231355"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/180231355" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#180231355">(Nov 08 2019 at 13:56)</a>:</h4>
<p>(with real pings this time)</p>



<a name="180235740"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/180235740" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#180235740">(Nov 08 2019 at 14:47)</a>:</h4>
<p>I'm skimming these docs now</p>



<a name="180235751"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/180235751" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#180235751">(Nov 08 2019 at 14:48)</a>:</h4>
<p>Of course I wantd to do so before-hand</p>



<a name="180235796"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/180235796" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#180235796">(Nov 08 2019 at 14:48)</a>:</h4>
<p>but of course I failed</p>



<a name="180235864"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/180235864" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#180235864">(Nov 08 2019 at 14:48)</a>:</h4>
<p>one thing..well, I'm not sure if it matters. I guess it probably doesn't. I was going to say that polonius is using datafrog, which is itself a sort of dataflow framework, but one highly specialized to "sets" of things. In general, I expect that many of the consumers of the existing dataflow framework will move to polonius in any case.</p>



<a name="180236374"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/180236374" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#180236374">(Nov 08 2019 at 14:54)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> Don't let me interrupt your skimming, but I would guess datalog is more expressive than gen-kill sets (obvs) and lets you express your "transfer function" (not sure how this maps to datalog) as a high-level function. That may allow for better optimizations than allowing <code>Fn(&amp;mut State)</code> as <a href="https://github.com/rust-lang/rust/issues/64566" target="_blank" title="https://github.com/rust-lang/rust/issues/64566">#64566</a> does.</p>



<a name="180236498"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/180236498" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#180236498">(Nov 08 2019 at 14:55)</a>:</h4>
<p>datalog is all about sets of tuples, but it is lower-level in some sense</p>



<a name="180236513"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/180236513" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#180236513">(Nov 08 2019 at 14:55)</a>:</h4>
<p>i.e., it doesn't hard-code the notion of a transfer function or a cfg</p>



<a name="180236582"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/180236582" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#180236582">(Nov 08 2019 at 14:56)</a>:</h4>
<p>it is possible to extend from sets of tuples to more complex things</p>



<a name="180236631"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/180236631" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#180236631">(Nov 08 2019 at 14:56)</a>:</h4>
<p>I guess the most direct question would be whether to port to <em>datafrog</em> instead of this new framework -- but I think I would wait on that until polonius has proven itself out</p>



<a name="180236800"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/180236800" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#180236800">(Nov 08 2019 at 14:58)</a>:</h4>
<p>Without knowing a lot about data{fr,l}og, I am guessing that we would ultimately want to keep a framework for bitvector problems as an optimization (it's pretty fast), but e.g. <a href="https://github.com/rust-lang/rust/issues/64470" target="_blank" title="https://github.com/rust-lang/rust/issues/64470">#64470</a> could use something at a higher level.</p>



<a name="180236824"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/180236824" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#180236824">(Nov 08 2019 at 14:58)</a>:</h4>
<p>yes, plausible</p>



<a name="180237642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/180237642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Dylan MacKenzie (ecstatic-morse) <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#180237642">(Nov 08 2019 at 15:07)</a>:</h4>
<p>Okay,I'll give some background</p>



<a name="180266034"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/unified%20dataflow%20design%20meeting%20prep%20%28Nov.%208%29/near/180266034" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nagisa <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/unified.20dataflow.20design.20meeting.20prep.20(Nov.2E.208).html#180266034">(Nov 08 2019 at 20:01)</a>:</h4>
<p>I’m here.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>